#include "Next.h"


Next::Next()
{
	_size= 0;
	_table = vector<pair<LINENUM,LINENUM>>();
}

BOOLEAN Next::setNext(LINENUM line1, LINENUM line2)
{
	if ((line1 <= 0) || ( line2 <= 0)) return false;	
	for (int i=0; i<_size; i++) {
		if ((_table.at(i).first==line1) && (_table.at(i).second==line2)) {
			return false;
		}
	}
	pair<LINENUM,LINENUM> p = pair<LINENUM,LINENUM>(line1,line2);
	_table.push_back(p);
	_size++;
	return true;
}

vector<pair<LINENUM,LINENUM>> Next::getNextPair(){
	return _table;
}
LINENUM Next::getNextSize(){
	return _size;
}
vector<LINENUM> Next::getBefore(LINENUM num2){
	vector<LINENUM> result = vector<LINENUM>();
	for(int i=0;i<_size;i++){
		if(_table.at(i).second==num2){
			result.push_back(_table.at(i).first);
		}
	}
	return result;
}
vector<LINENUM> Next::getNext(LINENUM num1){
	vector<LINENUM> result = vector<LINENUM>();
	for(int i=0;i<_size;i++){
		if(_table.at(i).first==num1){
			result.push_back(_table.at(i).second);
		}
	}
	return result;
}
BOOLEAN Next::isNext(LINENUM num1,LINENUM num2){
	for (int i=0; i<_size; i++) {
		if ((_table.at(i).first==num1) && (_table.at(i).second==num2)) {
			return true;
		}
	}
	return false;
}
